﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MacomberMapSystem.Common.Serialization;
using MacomberMapSystem.Common.CIM;
using MacomberMapSystem.Common.Database;
using System.Data.Common;

namespace MacomberMapSystem.Common.Integration
{
    /// <summary>
    /// This class holds information on an element that has data outside of CIM
    /// </summary>
    public class MM_Element: MM_Serializable
    {
        #region Variable declarations
        /// <summary>The rdf:ID of our element</summary>
        [MM_Serializable_Target(MM_Serializable_Target.enumTargetType.FieldValue)]
        public CIM_RdfID rdfID;

        /// <summary>The TEID of our line element</summary>
        [MM_Serializable_Target(MM_Serializable_Target.enumTargetType.FieldValue)]
        public UInt64 TEID;

        /// <summary>The name of our line</summary>
        [MM_Serializable_Target(MM_Serializable_Target.enumTargetType.FieldValue)]
        public String Name;

        /// <summary>The last validator of the line</summary>
        [MM_Serializable_Target(MM_Serializable_Target.enumTargetType.FieldValue)]
        public MM_Database_User ValidatedBy;

        /// <summary>The last validation time of the line</summary>
        [MM_Serializable_Target(MM_Serializable_Target.enumTargetType.FieldValue)]
        public DateTime ValidatedOn;
        #endregion

        #region Initialization
        /// <summary>
        /// Initialize a new element
        /// </summary>
        /// <param name="dRd"></param>
        /// <param name="Repository"></param>
        public MM_Element(DbDataReader dRd, MM_Repository Repository)
            : base(dRd, null, Repository)
        { }
        #endregion
    }
}
